#pragma once
#include"time.h"
#include"graph.h"
//校车功能

class SchoolBus;

__declspec(selectany) vector<SchoolBus>BusKu;  //校车库，需要进行存档

//最早发车时间，设定为6：30
const int Starthour = 6;
const int Startmin = 30;
const int Startsec = 0;

//最迟发车时间，设定为22：30
const int Endhour = 22;
const int Endmin = 30;
const int Endsec = 0;

//发车间隔，设定为15min
const int Durationhour = 0;
const int Durationmin = 15;
const int Durationsec = 0;

//关于时间的参量系统已经设定好，管理员需要传入公交车站点即可

class SchoolBus {
public:Time StartTime;   //最早发车时间
	   Time EndTime;   //末班车发车时间
	   Time BusDuration;   //相邻两趟车发车间隔
	   vector<Dot*>Station;   //所经过的站点
	   Dot* Origin;    //起点站
	   Dot* Terminal;     //终点站
	   map<Dot*, vector<Time>>StationTime;    //每个站停留的时间
      SchoolBus(vector<Dot*>Sta);  //构造函数
	  void ExtendStation(Dot* a);   //扩展站点，即在最后一个站点中加入新的重点
	  void InsertStation(Dot* a,Dot *InsertPlace);   //插入站点，在第二个参数之前插入（注意是前插不是后插因为与STL中insert函数功能保持一致）
	  void DeleteStation(Dot* a);   //删除站点
	  void UpdateStationTime();   //更新每个站停留的时间
	  int GetStationIndex(Dot* target);   //获取站点在数组中的下标
}; 